home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / Projects / Tutorial Material / Zone Tutorial / Structure Notes / 5. Tonality Structure 2 < prev    next >
Lisp/Scheme  |  1998-10-26  |  2KB  |  63 lines

  1. Tonality Structure -  creating a zone structure
  2.  
  3. There are many ways of connecting zone length to melody or note length
  4. output. In the file TRIOX a zone length sequence is constructed from 
  5. the output of a brownian motion fractal.
  6.  
  7. (setq mat1 (gen-noise-brownian 9 0.4 0.4)) ; 512 values
  8. (setq mat2 (gen-noise-brownian 7 0.4 0.4)) ; 128 values
  9. (setq mat3 (gen-noise-brownian 5 0.4 0.4)) ; 32 values
  10.  
  11. ; Nigel has been using tick value 96 for 1/4 note. 
  12. ; Because Nigel often mixes ticks and ratios, the function must take
  13. ; both cases into account.
  14.  
  15. (defun use-nigel-ticks (l)
  16.   (let (out)
  17.     (dolist (x l)
  18.       (if (is-length-symbol x)
  19.         (push x out)
  20.         (push (* x 5) out)))
  21.     (nreverse out)))
  22.  
  23. (setq zone1a (use-nigel-ticks (vector-to-list (vector-round 192 384 mat3))))
  24.  
  25. The 32 zones produced at this point lie between 192 and 384, 
  26. that's 2/4 and 4/4.
  27.  
  28. (setq zone1 (use-nigel-ticks (vector-to-list (vector-quantize 5 16 zone1a))))
  29.  
  30. The next expression quantizes this output into 16 zones in 5 divisions;
  31.  
  32. 192 240 288 336 384 = 2/4 5/8 6/8 7/8 4/4. 
  33.  
  34. This creates a metric scheme.
  35.  
  36. (setq ptch1 (vector-to-symbol a o mat1))
  37. (setq ptch2 (vector-to-symbol a j mat2))
  38. (setq ptch3 (vector-to-symbol a e mat3))
  39.  
  40. Each instrument then has its own pitch series derived from symbol 
  41. ranges generated by different  magnifications of the fractal. 
  42.  
  43. (def-symbol 
  44.    piano (find-change ptch1)
  45.    sax (find-change ptch3)
  46.    violin (find-change ptch2)
  47. )
  48.  
  49. (def-length 
  50.    piano '(1/8)
  51.    sax '(1/8)
  52.    violin '(1/8)
  53. )
  54.  
  55. In the instrument definitions there appears to be set up a monotonous 
  56. rhythm for each part. In fact, by applying the function find-change 
  57. to the pitch series, rhythmic phrases and counterpoint individual to 
  58. each instrument are created. Now discover how the function find-change 
  59. works:
  60.  
  61. (setq ptch (find-change 
  62.              '(a a b c d d d f b b f e e f e d d d c b b a)))
  63.